package gui.aula;

import java.awt.Rectangle;

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

import utils.Utilidad;

import manejador.ManejadorDeAula;

import modelo.ModeloAula;
import entidad.Aula;

import gui.ciclo.DialogoModificarCiclo;

public class PanelModificarAula extends JPanel {

	private static final long serialVersionUID = 1L;
	private JLabel lblNombre = null;
	private JTextField txtNombre = null;
	private JLabel lblDescripcion = null;
	private JScrollPane jspDescripcion = null;
	private JTextArea txtDescripcion = null;
	private JButton btnAceptar = null;
	private JButton btnCancelar = null;
	private int idModificar;
	private ModeloAula modeloAula = null;
	private static PanelModificarAula instancia = null;

	public static PanelModificarAula getInstancia() {
		if (instancia == null) {
			instancia = new PanelModificarAula();
		}
		return instancia;
	}

	/**
	 * This is the default constructor
	 */
	public PanelModificarAula() {
		super();
		initialize();
	}

	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize() {
		this.modeloAula = ModeloAula.getInstancia();
		lblDescripcion = new JLabel();
		lblDescripcion.setBounds(new Rectangle(9, 39, 74, 23));
		lblDescripcion.setText("Descripcion:");
		lblNombre = new JLabel();
		lblNombre.setBounds(new Rectangle(9, 9, 74, 23));
		lblNombre.setText("Nombre:");
		this.setSize(300, 208);
		this.setLayout(null);
		this.add(lblNombre, null);
		this.add(getTxtNombre(), null);
		this.add(lblDescripcion, null);
		this.add(getJspDescripcion(), null);
		this.add(getBtnAceptar(), null);
		this.add(getBtnCancelar(), null);

	}

	/**
	 * This method initializes txtNombre
	 * 
	 * @return javax.swing.JTextField
	 */
	private JTextField getTxtNombre() {
		if (txtNombre == null) {
			txtNombre = new JTextField();
			txtNombre.setBounds(new Rectangle(91, 10, 152, 23));
		}
		return txtNombre;
	}

	/**
	 * This method initializes jspDescripcion
	 * 
	 * @return javax.swing.JScrollPane
	 */
	private JScrollPane getJspDescripcion() {
		if (jspDescripcion == null) {
			jspDescripcion = new JScrollPane();
			jspDescripcion.setBounds(new Rectangle(91, 42, 200, 117));
			jspDescripcion.setViewportView(getTxtDescripcion());
		}
		return jspDescripcion;
	}

	/**
	 * This method initializes txtDescripcion
	 * 
	 * @return javax.swing.JTextArea
	 */
	private JTextArea getTxtDescripcion() {
		if (txtDescripcion == null) {
			txtDescripcion = new JTextArea();
		}
		return txtDescripcion;
	}

	/**
	 * This method initializes btnAceptar
	 * 
	 * @return javax.swing.JButton
	 */
	private JButton getBtnAceptar() {
		if (btnAceptar == null) {
			btnAceptar = new JButton();
			btnAceptar.setBounds(new Rectangle(12, 173, 101, 26));
			btnAceptar.setText("Aceptar");
			btnAceptar.addActionListener(new java.awt.event.ActionListener() {

				@SuppressWarnings("deprecation")
				public void actionPerformed(java.awt.event.ActionEvent e) {
					if (Utilidad.getInstancia().validar(txtDescripcion,
							txtNombre) == false) {
						JOptionPane.showMessageDialog(null,
								"Faltan Campos por llenar", "Atencion",
								JOptionPane.ERROR_MESSAGE);
					} else {
						int opcion = JOptionPane.showConfirmDialog(null,
								"Esta Seguro que desea Modificar esta Aula ?",
								"Confirmando", JOptionPane.YES_NO_OPTION);

						if (opcion == JOptionPane.YES_OPTION) {
							Aula aula = new Aula(0, txtNombre.getText(),
									txtDescripcion.getText());
							aula = (Aula) Utilidad.getInstancia()
									.convertirAMayuscula(aula);
							modeloAula.modificar(aula, getIdModificar());
							JOptionPane.showMessageDialog(null,
									"Aula Modificada con Exito");
						}
						DialogoModificarCiclo.getInstancia().setVisible(false);
					}
				}
			});
		}
		return btnAceptar;
	}

	/**
	 * This method initializes btnCancelar
	 * 
	 * @return javax.swing.JButton
	 */
	private JButton getBtnCancelar() {
		if (btnCancelar == null) {
			btnCancelar = new JButton();
			btnCancelar.setBounds(new Rectangle(153, 173, 101, 28));
			btnCancelar.setText("Cancelar");
		}
		return btnCancelar;
	}

	public void llenarCampos() {
		Aula aula = (Aula) ManejadorDeAula.getInstancia().getEntidadPorId(
				getIdModificar());
		txtDescripcion.setText(aula.getDescripcion());
		txtNombre.setText(aula.getNombre());

	}

	public int getIdModificar() {
		return idModificar;
	}

	public void setIdModificar(int idModificar) {
		this.idModificar = idModificar;
	}

} // @jve:decl-index=0:visual-constraint="10,10"
